/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.hatapps.pollafutbolera.entity;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author ivan
 */
@Entity
@Table(name = "usuario_has_torneo")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "UsuarioHasTorneo.findAll", query = "SELECT u FROM UsuarioHasTorneo u"),
    @NamedQuery(name = "UsuarioHasTorneo.findByUsuarioidUsuario", query = "SELECT u FROM UsuarioHasTorneo u WHERE u.usuarioHasTorneoPK.usuarioidUsuario = :usuarioidUsuario"),
    @NamedQuery(name = "UsuarioHasTorneo.findByTorneoidTorneo", query = "SELECT u FROM UsuarioHasTorneo u WHERE u.usuarioHasTorneoPK.torneoidTorneo = :torneoidTorneo"),
    @NamedQuery(name = "UsuarioHasTorneo.findByPuntos", query = "SELECT u FROM UsuarioHasTorneo u WHERE u.puntos = :puntos")})
public class UsuarioHasTorneo implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected UsuarioHasTorneoPK usuarioHasTorneoPK;
    @Column(name = "puntos")
    private Integer puntos;
    @JoinColumn(name = "Torneo_idTorneo", referencedColumnName = "idTorneo", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Torneo torneo;
    @JoinColumn(name = "Usuario_idUsuario", referencedColumnName = "idUsuario", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Usuario usuario;

    public UsuarioHasTorneo() {
    }

    public UsuarioHasTorneo(UsuarioHasTorneoPK usuarioHasTorneoPK) {
        this.usuarioHasTorneoPK = usuarioHasTorneoPK;
    }

    public UsuarioHasTorneo(int usuarioidUsuario, int torneoidTorneo) {
        this.usuarioHasTorneoPK = new UsuarioHasTorneoPK(usuarioidUsuario, torneoidTorneo);
    }

    public UsuarioHasTorneoPK getUsuarioHasTorneoPK() {
        return usuarioHasTorneoPK;
    }

    public void setUsuarioHasTorneoPK(UsuarioHasTorneoPK usuarioHasTorneoPK) {
        this.usuarioHasTorneoPK = usuarioHasTorneoPK;
    }

    public Integer getPuntos() {
        return puntos;
    }

    public void setPuntos(Integer puntos) {
        this.puntos = puntos;
    }

    public Torneo getTorneo() {
        return torneo;
    }

    public void setTorneo(Torneo torneo) {
        this.torneo = torneo;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (usuarioHasTorneoPK != null ? usuarioHasTorneoPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof UsuarioHasTorneo)) {
            return false;
        }
        UsuarioHasTorneo other = (UsuarioHasTorneo) object;
        if ((this.usuarioHasTorneoPK == null && other.usuarioHasTorneoPK != null) || (this.usuarioHasTorneoPK != null && !this.usuarioHasTorneoPK.equals(other.usuarioHasTorneoPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.hatapps.pollafutbolera.entity.UsuarioHasTorneo[ usuarioHasTorneoPK=" + usuarioHasTorneoPK + " ]";
    }
    
}
